设置行的数据,Table
使用key-value
的方式来访问数据。
Table->set(string $key, array $value) : void
$key
,数据的key
,相同的$key
对应同一行数据,如果set
同一个key
,会覆盖上一次的数据$value
,必须是一个数组,必须与字段定义的$name
完全相同
swoole_table->set()
可以设置全部字段的值,也可以只修改部分字段
swoole_table->set()
未设置前,该行数据的所有字段均为空
set/get/del
是自带行锁,所以不需要调用lock加锁
Key非二进制安全,必须为字符串类型,不得传入二进制数据
此函数没有返回值。
$table->set('1', ['id' => 1, 'name' => 'test1', 'age' => 20]);
$table->set('2', ['id' => 2, 'name' => 'test2', 'age' => 21]);
$table->set('3', ['id' => 3, 'name' => 'test3', 'age' => 19]);
如果传入字符串长度超过了列定义时设定的最大尺寸,底层会自动截断。
示例:
$table->column('str_value', swoole_table::TYPE_STRING, 5);
$table->set('hello', array('str_value' => 'world 123456789'));
str_value
列最大尺寸为5
字节,但set
设置了超过5字节的字符串- 底层会自动截取
5
字节的数据,最终str_value
的值为world